Presenting content items and performing actions with respect to content items

ABSTRACT

Mechanisms for presenting content items and performing actions with respect to content items are disclosed. A content sharing platform receives a first content item from a first user of a user device and identifies a set of actions performed by the first user on the first user device. Each action from the set of actions is associated with a corresponding additional content item from set of additional content items and each additional content item from the set of additional content items is associated with a corresponding portion of the first content item. The content sharing platform provides data indicative of the set of content items to a second user device of a second user. The content sharing platform causes one or more actions from the set of actions to be performed in a GUI on the second user device.

TECHNICAL FIELD

Embodiments of the present disclosure relate to the field of contentitems and, more particularly, to mechanisms for presenting content itemsand performing actions with respect to content items.

BACKGROUND

On the Internet, social networks allow users to connect to and shareinformation with each other. Many social networks include a contentsharing aspect that allows users to upload, view, and share content suchas content items. Such content items may include audio clips, movieclips, TV clips, and music videos, as well as amateur content such asvideo blogging, short original videos, pictures, photos, othermultimedia content, etc. Other users of the social network may commenton the shared content, discover new content, locate updates, sharecontent, and otherwise interact with the provided content. The sharedcontent may include content from professional content creators, e.g.,movie clips, TV clips, and music videos, as well as content from amateurcontent creators, e.g., video blogging and short original videos. Usersmay use computing devices (such as smart phones, cellular phones, laptopcomputers, desktop computers, netbooks, tablet computers) to use, play,and/or consume content items (e.g., watch digital videos, and/or listento digital music).

A content sharing platform can include one or more channels that may beviewable over the Internet. A channel is a mechanism for providingcertain media items and/or for providing access to media items tosubscribers. Media items for the channel can be selected by a user,uploaded by a user, selected by a content provider, or selected by abroadcaster. Users can subscribe to one or more channels. Uponsubscribing, the user can view his or her subscriptions from thehomepage of the content hosting site or from a user interface byclicking on a “Subscriptions” link/button. With many channels and evenmore media items associated with a content sharing platforms or viewableover the Internet, it may be difficult for a user to find new mediaitems to consume and/or to decide which media items to consume.

SUMMARY

The below summary is a simplified summary of the disclosure in order toprovide a basic understanding of some aspects of the disclosure. Thissummary is not an extensive overview of the disclosure. It is intendedto neither identify key or critical elements of the disclosure, nordelineate any scope of the particular implementations of the disclosureor any scope of the claims. Its sole purpose is to present some conceptsof the disclosure in a simplified form as a prelude to the more detaileddescription that is presented later.

In one embodiment, a method of presenting and/or providing content itemsis presented. The method may receive a first content item from a firstuser of a first user device and identify a set of actions performed bythe first user on the first user device. Each action from the set ofactions may be associated with a corresponding additional content itemfrom a set of additional content items and each additional content itemfrom the set of additional content items may be associated with acorresponding portion of the first content item. The method alsoprovides data indicative of the set of additional content items to aclient device and a graphical user interface (GUI) to the client device.The GUI may include a first GUI portion to present the first contentitem and a second GUI portion to present the set of additional contentitems. The method may also cause one or more actions from the set ofactions to be performed on the GUI on the second user device.

In another embodiment, a method of presenting and/or providing contentitems is presented. The method receives a first content item from acontent sharing platform and receives data indicative of a set ofactions from the content sharing platform. Each action from the set ofactions may be associated with a corresponding additional content itemfrom set of additional content items and each additional content itemfrom the set of additional content items may also be associated with acorresponding portion of the first content item. The method alsoprovides providing a graphical user interface (GUI) including a firstGUI portion to present the first content item and a second GUI portionto present the set of content items. The method may also cause one ormore actions from the set of actions to be performed in the GUI.

In additional embodiments, computing devices for performing theoperations of the above described embodiments are also implemented.Additionally, in embodiments of the disclosure, a computer readablestorage media may store instructions for performing the operations ofthe embodiments described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will be understood more fully from the detaileddescription given below and from the accompanying drawings of variousembodiments of the present disclosure, which, however, should not betaken to limit the present disclosure to the specific embodiments, butare for explanation and understanding only.

FIG. 1 is a diagram illustrating an example graphical user interface(GUI), in accordance with one embodiment of the present disclosure.

FIG. 2 is a diagram illustrating exemplary content items, in accordancewith one embodiment of the present disclosure.

FIG. 3 is a diagram illustrating an example system architecture, inaccordance with one embodiment of the present disclosure.

FIG. 4A is a block diagram illustrating a content module, in accordancewith one embodiment of the present disclosure.

FIG. 4B is a block diagram illustrating a media viewer, in accordancewith one embodiment of the present disclosure.

FIG. 5 is a flow diagram illustrating a method of presenting multiplecontent items, in accordance with one embodiment of the presentdisclosure.

FIG. 6 is a flow diagram illustrating a method of presenting multiplecontent items, in accordance with another embodiment of the presentdisclosure.

FIG. 7 is a block diagram of an example computing device that mayperform one or more of the operations described herein.

DETAILED DESCRIPTION

The following disclosure sets forth numerous specific details such asexamples of specific systems, components, methods, and so forth, inorder to provide a good understanding of several embodiments of thepresent disclosure. It will be apparent to one skilled in the art,however, that at least some embodiments of the present disclosure may bepracticed without these specific details. In other instances, well-knowncomponents or methods are not described in detail or are presented insimple block diagram format in order to avoid unnecessarily obscuringthe present disclosure. Thus, the specific details set forth are merelyexamples. Particular implementations may vary from these example detailsand still be contemplated to be within the scope of the presentdisclosure.

A content sharing platform may allow a first user to create and/orprovide a first content item that may refer to one or more additionalcontent items. For example, the first user may provide a video of thefirst user lecturing on a particular topic. During the lecture, thefirst user may refer to one or more additional content items. Forexample, during the lecture, the first user may refer to other videosthat illustrate certain concepts discussed by the first user in thelecture. The content sharing platform may also allow the first user toperform one or more actions (e.g., starting playback, pausing playback,fast forwarding, rewinding, etc.) with respect to the one or moreadditional content items and may store and/or record the actions, thetimes or portions of the first content item at which the first userperformed the actions, and the portions of the one or more additionalcontent items that are associated with the actions. The first user maywish to allow other users, such as a second user, to view the contentitem and to view the one or more additional content items that the firstuser referred to during the lecture. The first user may also wish toallow other uses to view or experience the actions the first userperformed with respect to the one or more additional content items. Forexample, the first user may wish to allow the second user to experienceor view the same portions of the additional content items accessed bythe first user and to view when the user paused, fast-forwarded, and/orrewound the additional content items. The content sharing platform mayrecord the additional content items accessed by the first user and theactions performed by the first user with respect to the one or moreadditional content items. When a second user consumes (e.g., views,plays, etc.) the first content item, the second user receives dataindicative of the one or more additional content items and the actionsperformed with respect to the one or more additional content items. Thecontent sharing platform provides the one or more additional contentitems and performs the actions (that were performed by the first user)with respect to the one or more additional content items. The contentsharing platform may also perform the actions at the same times and/orwith respect to the same portions within the first content item as theactions performed by the first user.

The content sharing platform may simultaneously present the firstcontent item and the one or more additional content items to the user(as illustrated and discussed below in conjunction with FIG. 1). Thismay allow other users to view the first content item, the one or moreadditional content items, and/or the actions of the first user withrespect to one or more additional content items. For example, the seconduser may view the first content item (e.g., a video of a lecture) andthe additional content items (e.g., other videos that demonstrateconcepts discussed in the lecture). The actions performed by the firstuser with respect to the one or more additional content items may beperformed as the second user views the first content item and the one ormore additional content items. For example, as the second user isviewing the first content item (e.g., the lecture), the first contentitem may refer to a second content item that demonstrates a concept fromthe lecture. The first user may pause the second content item at acertain point in the second content item to emphasize the concept. Whenthe second user views the first content item and the second contentitem, the second content item may be paused at the same point that thefirst user paused the second content item. This allows the first user toprovide more interesting, enriching and/or engaging content while stillallowing the second user to view the content item in conjunction withthe one or more additional content items. For example, the second userdoes not have to stop viewing the first content item in order to viewthe second content item because both the first content item and thesecond content item are presented to the user simultaneously or inparallel. In addition, presenting both the first content item and thesecond content item (from the one or more additional content items)simultaneously allows the second user to gain better context and/orunderstanding of how and when the first content item referred to thesecond content item. In addition, presenting both the first content itemand the second content may allow the content sharing platform to bettertrack and/or determine the amount of revenue generated by the firstcontent item. For example, if the first content item refers to a secondcontent item and the user stops viewing the first content item in orderto view the second content item, the revenue generated by advertisementsmay be credited to the owner of the second content item even though thesecond content item was viewed because the user initially viewed thefirst content item. Presenting both the first and second content itemssimultaneously allows the owner or curator of the first content item tobe credited with the revenue generated by advertisements because thecontent sharing platform may be able to determine that the user isviewing the first content item and that the one or more additionalcontent items were not separately accessed by the user, but rather,accessed when presenting the first content item to the second user.

FIG. 1 is a diagram illustrating an example graphical user interface(GUI) 100 in accordance with one embodiment of the present disclosure.In one embodiment, the GUI 100 may be part of a media viewer (e.g.,media viewer 311 as discussed below in conjunction with FIG. 3) providedby a server (e.g., server 330 discussed below in conjunction with FIG.3). For example, the GUI 100 may be part of a media viewer that isembedded in a web page (e.g., an embedded media viewer such as a Flash®player or a hypertext markup language-5 (HTML5)-based player) and theGUI 100 may be rendered by a web browser executing on a client device.In another embodiment, the GUI 100 may be part of a media viewer thatmay be separate from a web page/web browser (e.g., may be a standalonemedia viewer and/or application). For example, the media viewer may be aseparate application (e.g., an app) that is executing on the clientdevice. The GUI 100 includes GUI portion 105A, GUI portion 105B, andcontent item list 115.

The GUI portion 105A includes media viewer controls which may be used tocontrol the consumption of the content items (e.g., digital videosand/or digital music). The media viewer controls include a play button121A, a pause button 122A, a rewind button 123A, a fast forward button124A, and a volume button 125A. The play button 121A may allow a user tobegin and/or restart playback of the content items. The pause button mayallow a user to pause and/or un-pause playback of the content items. Therewind button 123A may allow a user to rewind playback, move and/or skipto an earlier point in time in the content items. The fast forwardbutton 124A may allow a user to fast forward playback, move, and/or skipto a later point in time in the content items. The GUI portion 105A alsoincludes a play time display 113A, a playback bar 111A and a playbackslider 112A. The play time display 113A may display a current play timeand/or a total play time for the content items. For example, a totalplay time (e.g., the total length) of content item may be 2 minutes and30 seconds (e.g., 2:30). The current play time may be currenttime/position in the playback of content item (e.g., 1 minute and 53seconds or 1:53). Playback slider 112A is positioned on a region of aplayback bar 111A that corresponds to the current play time (e.g.,1:53). The playback slider 112A may be adjusted (e.g., dragged) to anyother region of the playback bar 111A to adjust the current play timeshown in the play time display 113A. The GUI 100 includes a mediaportion 110A that may display a content item. For example, media portion110A may be the portion of the GUI 100 where a video (e.g., a contentitem) is played. The media portion 110A may also play other types ofvideos, images, music, and/or other content items.

The volume button 125A may allow a user to control the volume of sounds,music, and/or other audible noises in the videos. In one embodiment, thevolume bar 131A and the volume slider 132A may be displayed when theuser clicks and/or activates the volume button 125A. For example, thevolume bar 131A and the volume slider 132A may not be initiallydisplayed in the GUI portion 105. After the user clicks the volumebutton 125A, the volume bar 131A and the volume slider 132A may bedisplayed. The user may move and/or slide the volume slider 132A upand/or down along the volume bar 131A to control the volume of sounds,music, and/or other audible noises in the videos. For example, the usermay slide the volume slider 132A up to increase the volume or may slidevolume slider 132A down to decrease the volume. In one embodiment (notshown in the figures), the GUI portion 105A may also include buttons(e.g., magnifying glass buttons) that allow a user to zoom in and/orzoom out during the consumption of content items. This may allow a userto get a closer view and/or a farther view of the content item.

The GUI portion 105B also includes media viewer controls (similar to GUIportion 105A) which may be used to control the consumption of thecontent items (e.g., digital videos and/or digital music). The GUIportion 105B also includes a play time display 113B, a playback bar 111Band a playback slider 112B. The play time display 113B may display acurrent play time (e.g., e.g., 50 minutes and 34 seconds or 50:34)and/or a total play time (e.g., 59 minutes and 12 seconds or 59:12) forthe content items. The current play time may be current time/position inthe playback of content item. Playback slider 112B is positioned on aregion of a playback bar 111B that corresponds to the current play time(e.g., 1:53). The playback slider 112B may be adjusted (e.g., dragged)to any other region of the playback bar 111B to adjust the current playtime shown in the play time display 113B. The GUI portion 105B includesa media portion 110B that may display a content item (e.g., a video, animage, a digital book, digital music and/or other content items. Forexample, media portion 110B may be the portion of the GUI 100 where avideo (e.g., a content item) is played. The media portion 110B may alsoplay other types of videos, images, music, and/or other content items.

The volume button 125B may allow user to control the volume of sounds,music, and/or other audible noises in the videos. In one embodiment, thevolume bar 131B and the volume slider 132B may be displayed when theuser clicks and/or activates the volume button 125B. The user may moveand/or slide the volume slider 132B up and/or down along the volume bar131B to control the volume of sounds, music, and/or other audible noisesin the videos. In one embodiment (not shown in the figures), the GUIportion 105B may also include buttons (e.g., magnifying glass buttons)that allow a user to zoom in and/or zoom out during the consumption ofcontent items. This may allow a user to get a closer view and/or afarther view of the content item.

As discussed below in conjunction with FIG. 3, a first user may performoperations to create a content item and/or may provide a content item toa content sharing platform. For example, a first user may record a firstcontent item, such as a digital video, and provide the first contentitem to the content sharing platform. The digital video may refer toadditional content items (e.g., an additional digital video, anadditional digital book, additional digital audio, an additional slidepresentation, an additional document, etc.). The first user (thatperformed operations to create (e.g., recorded) and/or provided thefirst content item to the content sharing platform) may also performactions with respect to the one or more additional content items as thefirst content item is created. For example, the first user may beginconsumption (e.g., playback) of a first additional digital video (e.g.,an additional content item) at a first point (e.g., at a first time,such as 1 minutes and 3 seconds) in the first additional digital videoand may stop consumption (e.g., stop or pause playback) at a secondpoint (e.g., at a second time, such as 2 minutes and 13 seconds). Thefirst user may also begin consumption (e.g., playback) of a secondadditional digital video (e.g., an additional content item) at a firstpoint in the second additional digital video and may stop consumption ata second point while the first content item is being consumed (e.g., thefirst content item and the second additional digital video may be playedor consumed simultaneously or in parallel). In other embodiments, afirst user may perform any number of actions with respect to any numberof content items. In one embodiment, an action may be any activity,function, act, and/or operation that affects the consumption of acontent item. Examples of the actions performed by the first user mayinclude, but are not limited to, starting consumption of a content item,stopping consumption (e.g., pausing or stopping playback) of a contentitem, fast forwarding a content item, rewinding a content item, resumingconsumption of a content item, zooming into a part of a content item,changing the volume of the audio for a content item, highlighting orindicating a portion of a content item, etc.

In one embodiment, the first user may perform these actions when thefirst user performs actions to create the first content item. Forexample, as the first user records a digital video, the first user mayperform one or more actions (e.g., may start consumption of anadditional content item, may pause consumption of an additional contentitem, etc.). The actions may be performed at certain portions (e.g., acertain times, positions, and/or points) in the first content item. Inanother embodiment, the first user may perform these actions after thefirst content item is created and/or provided to the content sharingplatform. For example, the first user may record the first content itemand provide the first content item to the content sharing platform. Thefirst user may provide user input (e.g., via a GUI not shown in thefigures) indicating actions with respect to additional content items(e.g., pausing a first additional content item, fast forwarding a secondadditional content item, rewinding a third additional content item,etc.). The user input may also indicate portions (e.g., times or points)in the first content item when the actions should be performed or shouldoccur. Each action may be associated with one of the one or moreadditional content items. In another embodiment, the content sharingplatform may record or store the actions performed by the first userwith respect to the one or more additional content items. The contentsharing platform may also record or store the portions (e.g., times orpoints) at when the actions were performed by the first user and/or theportions when the actions should be performed or should occur.

The GUI 100 may present content items (e.g., may display content items)and allow users to consume (e.g., view, watch, listen, read, etc.)content items. The content items may be included in a content sharingplatform (as discussed below in conjunction with FIG. 3). In oneembodiment, the first content item that is created and/or provided bythe first user may be presented in the media portion 110B of the GUIportion 105B to a second user (and/or to other users). For example, adigital video may be presented in the media portion 110B. In anotherexample, digital auto may be presented in the media portion 110B. Asdiscussed above, the first content item may refer to one or moreadditional content items (e.g., a set of content items) and/or thecontent sharing platform may receive actions from the first user withrespect to the one or more additional content items. The one or moreadditional content items may be included in the content item list 115.The content item list 115 may include data indicative of the one or moreadditional content items referred to by the first content item. Forexample, the content item list 115 includes the titles of four contentitems, Video 1, Audio 1, Book 1, and Slide Presentation 1. The contentitem list 115 may also include additional information for the one ormore additional content items. For example, the content item list 115may include descriptions for the content items, statistical information(e.g., total number of views, total number of approvals or “likes,” theauthor or owner, etc.).

As discussed above, the first user may perform actions with respect tothe one or more additional content items that are referred to by thefirst content item. The first user may perform these actions at certainportions (e.g., certain times or points) of the first content item. Forexample, at one minute into the first content item (e.g., at the time0:01:00), the first user may begin consumption (e.g., begin playback) ofa second content item and at three minutes into the first content item,the first user may stop consumption (e.g., stop playback) of the secondcontent item. As the first content item is presented to the second userin the media portion 110B, the additional content items referenced bythe first content item may be presented to the second user in the mediaportion 110A. For example, when the second user reaches the time of oneminute during the playback of the first content item, the second contentitem may be presented in the media portion 110A and when the secondusers reaches the time of three minutes during the playback of the firstcontent item, the playback of the second item may stop in the mediaportion 110A.

By allowing a first user to provide a first content item that refers toadditional content items and to perform actions with respect to theadditional content items at certain portions (e.g., times, points, orpositions) in the additional content items, the content sharing platformallows other users to consume more useful, interesting, enriching and/orengaging content. For example, the first content item may be a videocovering a sporting event. The first content item may cover particularhighlights that occurred during the sporting event (e.g., the scoring ofa goal, a fumble, a penalty, etc.). The first user may perform actionswith respect to additional content items that may be videos of theparticular highlights (e.g., a video of a goal, a fumble, a penalty,etc.). For example, as the first user discusses a touchdown made by aplayer in the game, the first user may play an additional content itemthat depicts the touchdown made by the player in the game and may pausethe additional content item at a certain point (e.g., to illustrated howthe touchdown was made by the player). As the particular highlights arecovered in the first video that is presented in the media portion 110B,an additional video (that may show a particular highlight) may bepresented in the media portion 110A. For example, at the portion of thefirst content item that refers to a particular highlight in the sportingevent, the media portion 110A may present a content item that shows theparticular highlight. This allows a second user to view both contentitems (e.g., both videos) simultaneously in the GUI 100. This may alsoallow the second user to view additional relevant or interesting contentmore easily and/or more quickly. For example, the user may not need touse a second, separate GUI to view the second content item. This mayalso allow the second user to better understand the context of thesecond content item in view of the first content item (e.g., to betterunderstand how the first content item referred to the second contentitem).

The content item list 115 includes a “History” tab and an “Upcoming”tab. As illustrated in FIG. 1, the “History” tab is selected. Also asillustrated in FIG. 1, the play time of the first content item presentedin media portion 110B is 50:34. Because the “History” tab is selected,the content item list 115 includes content items that are referenced bythe first content item at or before the play time of 50:34. In anotherembodiment, the second user may select the “Upcoming” tab. When thesecond user selects the “Upcoming” tab, the content item list 115 may bemodified and/or updated to indicate one or more content items that aremay be referenced by the first content at or after the playtime of50:34.

In one embodiment, the second user may pause the consumption (e.g.,playback) of the first content item (presented in the first GUI portion105B) using button 122B. The second user may also view the secondcontent item using the GUI portion 105A. For example, the second usermay fast forward or rewind to a different portion of the second contentitem, independent of the first content item. The second user may alsoun-pause consumption of the first content item. In one embodiment, thefirst content item may be a live content item (e.g., a content item thatis broadcasted, transmitted, and/or provided to users while the contentitem is being created and/or recorded). When the first content item is alive content item, the GUI portion 105B may resume consumption of thefirst content item at the time that the first content item was paused orat a latest time of the first content item. For example, the firstcontent item may be recorded as other users view the content item (e.g.,may be live). The second user may pause the first content item at afirst time X1. The first content item continues to record and thecontent sharing platform continues to provide the first content item toother users. When the second user pauses the first content item, thefirst content item may be at time X2 in the recording of the firstcontent item (e.g., a latest time). The GUI portion 105B may resumeplayback of the first content item at either time X1 or at time X2. Inone embodiment, the content sharing platform may prompt the user forinput as to whether the user wishes to resume playback at the time theuser paused playback of the first content or at the latest time of thecontent item. In another embodiment, the content sharing platform mayautomatically determine whether to resume playback at the time the userpaused playback of the first content or at the latest time of thecontent item. For example, the content sharing platform may use adefault preference or may use a user preference (provided by a user) todetermine whether to resume playback at the time the user pausedplayback of the first content or at the latest time of the content item.

Although content items referenced before and after the current playtimeof 50:34 are presented using tabs (as illustrated in FIG. 1), otherembodiments may present all of the additional content items in a contentitem list simultaneously and may use various visual indicators (e.g.,icons, colors such as greying out content items, text, images, adividing line to separate content items referenced before or after thecurrent playtime, etc.). In additional embodiments, the GUI portion105A, GUI portion 105B, and the content item list may be arranged invarious positions and/or sizes in the GUI 100. For example, thepositions of the GUI portion 105A and GUI portion 105B may be swapped.In another example, the content item list 115 may be positioned underthe media portion 110A.

In one embodiment, content sharing platform may pause consumption (e.g.,playback) of the first content item when the user accesses differentportions of the second content item. For example, if the user fastforwards, rewinds, or seeks/jumps to a particular portion of the secondmedia (e.g., seeks using the playback slider 112A), the content sharingmay pause consumption of the first content item (e.g., may pause theplayback or may stop providing the first content item to the user). Inanother embodiment, the content sharing platform may pause consumptionof the first media when the second user accesses a portion of the secondcontent item that is not referenced by the first content item. Forexample, the first content item may refer to the first minute of asecond content item. When the second user accesses the second minute ofthe second content item, the content sharing may pause consumption ofthe first content item.

In another embodiment, the user may select one of the content items inthe content item list 115. For example, the user may select the contentitem Audio 1. The content sharing platform may provide the portion ofthe first content item that refers to the content item Audio 1. Forexample, if the portion of the first content item starting at one minute(e.g., 00:01:00) refers to the content item Audio 1, the content sharingplatform may provide the content item Audio 1 starting at the one minuteportion of the first content item.

FIG. 2 is a diagram illustrating exemplary content items 200, 205, 210,215, and 220, in accordance with one embodiment of the presentdisclosure. As discussed above in conjunction with FIG. 1, a contentsharing platform and/or a media viewer may present a GUI with a firstGUI portion and a second GUI portion. The second GUI portion may presenta content item that is created (e.g., recorded) and/or provided by afirst user of the content sharing platform. For example, the second GUIportion may present a live video created by the first user. In anotherexample, the second GUI portion may present a video that is provided(e.g., uploaded) by the first user to the content sharing platform. Alsoas discussed above, the first content item may refer to one or moreadditional content items (e.g., a set of content items) such as contentitems 205, 210, 215, and 220. For example, the content (e.g., thesubject matter) of the first content item may refer to content items205, 210, 215, and 220. Actions 206 and 207 are performed with respectto content item 205 at times (e.g., portions, points, etc.) T1 and T2 ofthe content item 200, respectively. Actions 211, 212, and 213 areperformed with respect to content item 210 at times, T3, T4, and T5 ofthe content item 200, respectively. Actions 216, 217, 218, and 219 areperformed with respect to content item 215 at times T6, T7, T8, and T9of the content item 200, respectively. Action 221 is performed withrespect to content item 220 at time T10 of the content item 200.

The actions 206, 207, 211, 212, 213, 216, 217, 218, 219, and 221 may beperformed by the user that creates (e.g., records) and/or provides thefirst content item to the content sharing platform. Examples of theactions 206, 207, 211, 212, 213, 216, 217, 218, 219, and 221 performedby the first user may include, but are not limited to, startingconsumption of a content item, stopping consumption (e.g., pausing orstopping playback) of a content item, fast forwarding a content item,rewinding a content item, resuming consumption of a content item, etc.The content sharing platform may store and/or record the actions 206,207, 211, 212, 213, 216, 217, 218, 219, and 221. The content sharingplatform may also store and/or record the times T1 through T10 for eachof the actions 206, 207, 211, 212, 213, 216, 217, 218, 219, and 221. Thecontent sharing platform may also store and/or record the portions ofthe content items 205, 210, 215, and 220 for the actions 206, 207, 211,212, 213, 216, 217, 218, 219, and/or 221. For example, the action 206may indicate that at time T1 of the content item 200, the user startedplayback of the content item 205 at the portion starting at the twominute point of the content item 205. The action 207 may indicate thatat time T2 of the content item 200, the user stopped playback of thecontent item 205 at the portion starting at the three minute point ofthe content item 205. The content sharing platform may store the actions(e.g., start and stop playback), the times of the content item 200 whenthe actions were performed (e.g., T1 and T2), and the portions of thecontent item 205 that were associated with the actions 206 and 207(e.g., the one minute point and three minute point of content item 205).

In other embodiments, multiple actions may be combined into and/orrepresented as one action. For example, rather than having a firstaction that starts playback of content item 205 and a second action thatstops playback of the content item 205, the content sharing platform mayuse one action to indicate that the content item 205 was played for acertain period of time starting from a portion of the content item 205.For example, the content sharing platform may use one action to indicatethat the content item 205 was played for two minutes starting at the oneminute point of the content item 205. In another embodiment, the contentsharing platform may also store and/or record identifiers (e.g., auniform resource locator, an alphanumeric identifier, a numericidentifier, etc.) for the content items 205, 210, 215, and 220 when theuser performs the actions 206, 207, 211, 212, 213, 216, 217, 218, 219,and 221.

As illustrated in FIG. 1, the first portion of the GUI may present thecontent items 205, 210, 215, and 220 to a second user. As the seconduser consumes the content item 200 (e.g., as the second user listens to,plays, reads, etc., the content item 200). The content sharing platformmay determine the current play time (or a current portion) of thecontent item. Based on the current play time, the content sharingplatform may identify one of the content items 205, 210, 215, or 220 andmay perform one of the actions 206, 207, 211, 212, 213, 216, 217, 218,219, and 221. For example, the current play time of the content item 200reaches time T1, the content sharing platform may provide the contentitem 205 to the second user and may provide data indicative of theaction 206 to the user (e.g., may provide action data indicating thatthe content item 205 should be played starting at a certain portion ofthe content item 205). In another example, the current play time of thecontent item 200 reaches time T8, the content sharing platform mayprovide the content item 215 to the second user and may provide dataindicative of the action 218 to the user (e.g., may provide action dataindicating that playback of the content item 215 should be paused at acertain portion of the content item 205).

In one embodiment, the content sharing platform may store dataindicative of the actions 206, 207, 211, 212, 213, 216, 217, 218, 219,and 221, the times T1 through T10, and the portions of the content items205 through 220 associated with the actions 206, 207, 211, 212, 213,216, 217, 218, 219, and 221, as action data (as discussed below). When asecond user consumes the content item 200, the content sharing platformmay provide the action data to a media viewer (as discussed below). Themedia viewer may generate a content item list (as illustrated in FIG. 1)based on the action data. The media viewer may also use the action datato determine which actions to perform on which of the content items 205,210, 215, and 220 (e.g., a set of additional content items that arereferred to by the content item 200) when the user accesses differentportions of the content item 200.

FIG. 3 illustrates an example system architecture 300, in accordancewith one embodiment of the present disclosure. The system architecture300 includes client devices 310A through 310Z, a network 305, a datastore 306, a content sharing platform 320, a server 330, a socialnetwork platform 340, an email platform 350, and a search platform 360.In one embodiment, network 305 may include a public network (e.g., theInternet), a private network (e.g., a local area network (LAN) or widearea network (WAN)), a wired network (e.g., Ethernet network), awireless network (e.g., an 802.11 network or a Wi-Fi network), acellular network (e.g., a Long Term Evolution (LTE) network), routers,hubs, switches, server computers, and/or a combination thereof. In oneembodiment, the data store 310 may be may be a memory (e.g., randomaccess memory), a cache, a drive (e.g., a hard drive), a flash drive, adatabase system, or another type of component or device capable ofstoring data. The data store 310 may also include multiple storagecomponents (e.g., multiple drives or multiple databases) that may alsospan multiple computing devices (e.g., multiple server computers).

The client devices 310A through 310Z may each include computing devicessuch as personal computers (PCs), laptops, mobile phones, smart phones,tablet computers, netbook computers etc. Each client device includes amedia viewer 311. In one embodiment, the media viewers 311 may beapplications that allow users to view content, such as images, videos,web pages, documents, social shares, etc. For example, the media viewer311 may be a web browser that can access, retrieve, present, and/ornavigate content (e.g., web pages such as Hyper Text Markup Language(HTML) pages, digital content items, etc.) served by a web server. Themedia viewer 311 may render, display, and/or present the content (e.g.,a web page, a media viewer) to a user. The media viewer 311 may alsodisplay an embedded media player (e.g., a Flash® player or an HTML5player) that is embedded in a web page (e.g., a web page that mayprovide information about a product sold by an online merchant). Inanother example, the media viewers 311 may be a standalone applicationthat allows users to view digital content items (e.g., digital videos,digital images, electronic books, etc.) and/or social shares. The mediaviewers 311 may be provided to the client devices 310A through 310Z bythe server 330, the social network platform 340, and/or content sharingplatform 320. For example, the media viewers 311 may be embedded mediaplayers that are embedded in web pages provided by the content sharingplatform 320. In another example, the media viewers 311 may beapplications that are downloaded from the server 330. In one embodiment,the media viewers 311 may present a GUI with different GUI portions (asillustrated in FIG. 1). The different GUI portions may present differentcontent items (as illustrated and discussed above in conjunction withFIGS. 1 and 2).

In one embodiment, the content sharing platform 320 may be one or morecomputing devices (such as a rackmount server, a router computer, aserver computer, a personal computer, a mainframe computer, a laptopcomputer, a tablet computer, a desktop computer, etc.), data stores(e.g., hard disks, memories, databases), networks, software components,and/or hardware components that may be used to provide a user withaccess to content items and/or provide the content items to the user.For example, the content sharing platform 320 may allow a user toconsume, upload, search for, approve of (e.g., “like”), dislike, and/orcomment on content items. The content sharing platform 320 may alsoinclude a website (e.g., a web page) that may be used to provide a userwith access to the content items. The content sharing platform 320includes multiple channels (e.g., channels A through Z). Each channelmay include one or more content items 321. Examples of a content itemcan include, and are not limited to, digital video, digital movies,digital photos, digital music, website content, social media updates,electronic books (ebooks), electronic magazines, digital newspapers,digital audio books, electronic journals, web blogs, real simplesyndication (RSS) feeds, electronic comic books, software applications,etc. A content item may be consumed via the Internet and/or via a mobiledevice application. For brevity and simplicity, an online video (alsohereinafter referred to as a video) is used as an example of a contentitem throughout this document. As used herein, “media,” “media item,”“online content item,” “digital media,” “digital content item,”“content,” and “content item” may include an electronic file that can beexecuted or loaded using software, firmware or hardware configured topresent digital content (e.g., video, images, audio, text, etc.) to anentity. In one embodiment, the content sharing platform 320 may storethe content items using the data store 306.

Social network platform 340 may be one or more computing devices (e.g.,servers), data stores, networks, software components, and/or hardwarecomponents that may be used to allow users to connect to, shareinformation, and/or interact with each other. A social network platform340 may present to a user a listing (e.g., activity feed, feed, stream,wall, etc.) of social shares (such as posts, comments, content itemssuch as videos, images, audio, etc., status updates, favorabilityindications, tags, messages, etc.) generated by other users of thesocial network platform 340. The social network platform 340 may alsoinclude a content sharing aspect that allow users to upload, view, tag,and share content items, such as text content, video content, imagecontent, audio content, and so on. Other users of the social networkplatform 340 may comment on the social shares, discover new socialshares and/or content items, locate updates, and otherwise interact withthe provided content. In one embodiment, the content sharing platform320 may be integrated with the social network platform 340. For example,the social network platform 340 may use the content sharing platform 320to allow users to upload and/or share content. In another embodiment,the social network platform 340 may be separate from the content sharingplatform 320. In one embodiment, the social network platform 340 mayalso include chat functionality (e.g., a chat platform) to allow usersto chat (e.g., to instant message) each other.

In one embodiment, email platform 350 may be one or more computingdevices (e.g., servers), data stores, networks, software components,and/or hardware components that may be used to allow users to sendand/or receive electronic-mail (emails) to each other. For example, afirst user may use the email platform 350 to send an email to a seconduser regarding the time and location of a particular event. The firstuser may also attach files (e.g., video files, image files, text files,etc.) to the email. In one embodiment, the email platform 350 may alsoinclude chat functionality (e.g., a chat platform) to allow users tochat (e.g., to instant message) each other. In another embodiment, thesearch platform 360 may be one or more computing devices, data stores,networks, software components, and/or hardware components that may beused to allow users to search for information and/or data. For example,the search platform 360 may allow a user to search the Internet and/orother networks for articles, blogs, websites, web pages, images, videos,and/or other content related to a particular topic (e.g., how to fix acar). The search platform 360 may also include a search engine.

In one embodiment, the server 330 may be one or more computing devices(e.g., a rackmount server, a server computer, etc.). In one embodiment,the server 330 may be included in one or more of the content sharingplatform 320, the social network platform 340, the email platform 350,and the search platform 360. For example, the server 330 may be part ofthe content sharing platform 320. In another example, the server 330 maybe part of the social network platform 340. In another embodiment, theserver 330 may be separate from the content sharing platform 320, thesocial network platform 340, the email platform 350, and the searchplatform 360 but may communicate (e.g., exchange data with) the contentsharing platform 320, the social network platform 340, the emailplatform 350, and the search platform 360.

The server 330 includes a content module 335. The content module 335 mayreceive a first user's first content item that may refer to one or moreadditional content items. The content module 335 may also identify oneor more actions performed by the first user with respect to one or moreadditional content items. The content module 335 may store and/or recordthe actions, the times or portions of the first content item in whichthe first user performed the actions, and the portions of the one ormore additional content items that are associated with the actions. Thismay allow other users to view the first content item, the one or moreadditional content items, and/or the actions of the first user. Thisallows the first user to provide more interesting, enriching and/orengaging content while still allowing the user to view the content itemin conjunction with the one or more additional content items.

The content module 335 may receive a first content item from a firstuser of the content sharing platform 320. For example, the contentmodule 335 may allow the user to create (e.g., record) live content(e.g., record live video and broadcast/transmit the live video to otherusers of the content sharing platform 320). In another example, thecontent module 335 may allow the user to provide (e.g., to upload) apreviously created first content item (e.g., a previously recordedvideo). The first content item (provided by the first user) may refer toadditional content items (e.g., an additional digital video, anadditional digital book, additional digital audio, an additional slidepresentation, an additional document, etc.). The first user may alsoperform actions with respect to the one or more additional content itemswhen providing or performing actions to create (e.g., record) the firstcontent item (as discussed above in conjunction with FIGS. 1 and 2). Inone embodiment, the first user may perform these actions when the firstuser creates the first content item. In another embodiment, the firstuser may perform these actions after the first content item is createdand/or provided to the content sharing platform. The content module 335may receive these actions from the first user (e.g., review user inputfrom the first user) and may store action data indicative of theactions, the time or portion of the first content item in which theactions were performed, identifiers for the one or more additionalcontent items, and portions of the one or more additional content items(as discussed above in conjunction with FIGS. 1 and 2).

In one embodiment, the content module 335 may also provide a GUI (e.g.,GUI 100 illustrated in FIG. 1) that may be displayed by the mediaviewers 311. The GUI may include two portions. The second portion maypresent the first content item provided by the first user and the firstportion may present the one or more content items that are referred toby the first content item. The content module 335 may analyze theactions performed by the first user to determine the one or moreadditional content items that are referred to by the first content item.The content module 335 may provide data indicative of a one or moreadditional content items to the media viewer 311 and a list of the oneor more additional content items may be presented in a content item list(e.g., in content item list 115 illustrated in FIG. 1). The contentmodule 335 may also provide additional information for the one or moreadditional content items (e.g., descriptions for the content items,statistical information, the author or owner, etc.).

In one embodiment, the content module 335 may determine a current playtime of the first content item. For example, the content module 335 maydetermine that a user is using media view 311 to consume (e.g., play,listen to, read, etc.) the first content item and that the user iscurrently at a certain portion of a certain time in the first contentitem. The content module 335 may analyze the action data to identify asecond content item from the one or more additional content items thatcorresponds to the current play time (as described above in conjunctionwith FIGS. 1 and 2). The content module 335 may provide the secondcontent item to the media viewer 311 and may also perform one or moreactions associated with the second content item (e.g., may play, pause,fast forward, and rewind, etc., the second content item, as discussedabove in conjunction with FIGS. 1 and 2). When a user accesses adifferent portion of the first content item (e.g., when the user fastforwards the first content item or rewinds the first content item), thecontent module 335 may analyze the action data to identify a thirdcontent item from the one or more additional content items thatcorresponds to the new play time, may provide the third content item tothe media viewer 311 and may also perform one or more actions associatedwith the third content item (as discussed above in conjunction withFIGS. 1 and 2).

The content module 335 may also receive user input indicating that theuser wishes to pause the consumption (e.g., playback) of the firstcontent item. The content module 335 may stop providing the firstcontent item to the media viewer 311 and may continue to provide thesecond content item to the media viewer (as discussed above onconjunction with FIG. 1). The content module 335 may also receive userinput indicating that the user wishes to un-pause consumption of thefirst content item. The content module 335 may allow the user to resumeconsumption of the first content item at the time that the first contentitem was paused or at a latest time of the first content item (if thecontent item is a live content item). In one embodiment, content module335 may pause consumption (e.g., playback) of the first content itemwhen the user accesses different portions of the second content item. Inanother embodiment, the content sharing platform may pause consumptionof the first media when the second users access a portion of the secondcontent item that is not referenced by the first content item. Inanother embodiment, the user may provide user input selecting one of thecontent items in the content item list (e.g., select content item Book 1from content item list 115 illustrated in FIG. 1). The content module335 may provide the portion of the first content item that refers to thecontent item selected from the content item list to the media viewer311. The content module 335 may also provide the selected content itemto the media viewer 311.

As discussed above, the media viewers 311 may be applications that allowusers to consume (e.g., view, play, listen to, read, etc.) content, suchas images, videos, text, digital books, audio, web pages, documents,social shares, etc. In one embodiment, the media viewer 311 may presenta GUI with a first portion to present the first content item and asecond portion to present one or more additional content items that arereferred to by the first content item, such as the GUI 100 illustratedin FIG. 1.

In one embodiment, the media viewer 311 may receive action data (e.g.,data indicative of actions performed by the first user with respect toone or more additional content items), identifiers for the one or moreadditional content items, starting portions/points for the one or moreadditional content items (e.g., the portions of the additional contentitems from which to start playback), and/or ending portions/points forthe one or more additional content items (e.g., the portions of theadditional at which playback is to be stopped). The media viewer 311 mayrequest portions of the first content item and the one or moreadditional content items from the content sharing platform based on theaction data (as discussed above). The media viewer may also present alist (e.g., a content item list) of the one or more additional contentitems based on the action data (as discussed above).

FIG. 4A is a block diagram illustrating a content module 335, inaccordance with one embodiment of the present disclosure. The contentmodule 335 includes an action module 405, an item module 410, and a GUImodule 415. More or less components may be included in the contentmodule 335 without loss of generality. For example, two of the modulesmay be combined into a single module, or one of the modules may bedivided into two or more modules. In one embodiment, one or more of themodules may reside on different computing devices (e.g., differentserver computers). The content module 335, action module 405, the itemmodule 410, and the GUI module 415 may each be processing logic thatcomprises hardware (e.g., circuitry, dedicated logic, programmablelogic, microcode, etc.), software (e.g., instructions run on a processorto perform hardware simulation), or a combination thereof. The contentmodule 335 may be part of a content sharing platform and/or a socialnetwork platform (as discussed above in conjunction with FIG. 3).

The content module 335 is communicatively coupled to the data store 306.For example, the content module 335 may be coupled to the data store 306via a network (e.g., via network 305 as illustrated in FIG. 3). Inanother example, the data store 306 may be coupled directly to a serverwhere the content module 335 resides (e.g., may be directly coupled toserver 330). The data store 306 may be a memory (e.g., random accessmemory), a cache, a drive (e.g., a hard drive), a flash drive, adatabase system, or another type of component or device capable ofstoring data. The data store 306 may also include multiple storagecomponents (e.g., multiple drives or multiple databases) that may alsospan multiple computing devices (e.g., multiple server computers). Thedata store 306 includes action data 431. The action data may be dataindicative of one or more additional content items referred to by afirst content item (e.g., identifiers for the one or more additionalcontent items), actions performed with respect to the one or moreadditional content items (e.g., pausing a content item, fast forwardinga content item, etc.), and the times or portions of the first contentitem that that are associated with the actions performed by the firstuser. The action data 431 may also include data indicative of starttimes, start portions, starting points, end time, end portions and/orending points for the one or more additional content items. For example,the first user may start playback of an additional content item at time00:01:00 (e.g., one minute into the content item) and may stop playbackof the additional content item at time 00:03:34 (e.g., three minutes andthirty-four seconds into the content item). The action data may includethe start time (e.g., 00:01:00) and the end time (00:03:34) for theadditional content item.

In one embodiment, the item module 410 may receive a first content itemfrom a first user of the content sharing platform (as discussed above).The first content item (provided by the first user) may refer toadditional content items (e.g., an additional digital video, anadditional digital book, additional digital audio, an additional slidepresentation, an additional document, etc.). The first user may alsoperform actions with respect to the one or more additional content itemswhen providing or creating the first content item (as discussed above).The item module 410 may identify the one or more additional contentitems based on the actions received from the user.

In one embodiment, the action module 405 may receive the actions fromthe first user and may generate action data (e.g., data indicative ofthe actions performed by the user, the content items associated with theactions, start times, end times, etc.). The action module 405 mayprovide data indicative of one or more additional content items to amedia viewer. The action module 405 may also provide additionalinformation for the one or more additional content items (e.g.,descriptions for the content items, statistical information, the authoror owner, etc.).

In one embodiment, the action module 405 may determine a current playtime of the first content item when the user consumes the first contentitem and/or accesses different portions of the first content item. Theaction module 405 may analyze the action data to identify a secondcontent item from the one or more additional content items thatcorresponds to the current play time (as described above in conjunctionwith FIGS. 1 and 2). The action module 405 may provide the secondcontent item to the media viewer and may also perform one or moreactions associated with the second content item (e.g., as discussedabove in conjunction with FIGS. 1 and 2). The action module 405 may alsoreceive user input indicating that a user wishes to pause theconsumption of the first content item and may stop providing the firstcontent item to the media viewer 311 and may continue to provide thesecond content item to the media viewer (as discussed above onconjunction with FIG. 1). The action module 405 may also receive userinput indicating that the user wishes to un-pause consumption of thefirst content item and may allow the user to resume consumption of thefirst content item at the time that the first content item was paused orat a latest time of the first content item (if the content item is alive content item). In one embodiment, action module 405 may pauseconsumption (e.g., playback) of the first content item when the useraccesses different portions of the second content item. In anotherembodiment, the user may provide user input selecting one of the contentitems in the content item list (e.g., select content item SlidePresentation 1 from content item list 115 illustrated in FIG. 1). Theaction module 405 may provide the portion of the first content item thatrefers to the content item selected from the content item list to themedia viewer. The action module 405 may also provide the selectedcontent item to the media viewer.

In one embodiment, the GUI module 415 may also provide a GUI (e.g., GUI100 illustrated in FIG. 1). The GUI may include two portions. The secondportion may present the first content item provided by the first userand the first portion may present the one or more content items that arereferred to by the first content item. The GUI may also include a listof one or more content items (as illustrated in FIG. 1).

FIG. 4B is a block diagram illustrating a media viewer 311, inaccordance with one embodiment of the present disclosure. The mediaviewer 311 includes a client item module 435 and a client GUI module440. More or less components may be included in the media viewer 311without loss of generality. For example, two of the modules may becombined into a single module, or one of the modules may be divided intotwo or more modules. In one embodiment, one or more of the modules mayreside on different computing devices (e.g., different servercomputers). The media viewer 311, the client item module 435, and theclient GUI module 440 may each be processing logic that compriseshardware (e.g., circuitry, dedicated logic, programmable logic,microcode, etc.), software (e.g., instructions run on a processor toperform hardware simulation), or a combination thereof.

In one embodiment, the client item module 435 may receive a firstcontent item from a content sharing platform (as discussed above). Asdiscussed above, the first content item (provided by the first user) mayrefer to additional content items (e.g., an additional digital video, anadditional digital book, additional digital audio, an additional slidepresentation, an additional document, etc.). The client item module 435may identify the one or more additional content items based on theaction data received from the content sharing platform. The action datamay be data indicative of one or more additional content items referredto by a first content item (e.g., identifiers for the one or moreadditional content items), actions performed with respect to the one ormore additional content items (e.g., pausing a content item, fastforwarding a content item, etc.), and the times or portions of the firstcontent item at that are associated with the actions performed by thefirst user. The action data may also include data indicative of starttimes, start portions, starting points, end times, end portions and/orending points for the one or more additional content items.

In one embodiment, the client item module 435 may determine a currentplay time of the first content item when the user consumes the firstcontent item and/or accesses different portions of the first contentitem. The client item module 435 may provide the current play time ofthe first content item to the content sharing platform. The contentsharing platform may provide the media viewer 311 with content itemsbased on current play time (as described above in conjunction with FIGS.1 through 3). The client item module 435 may also receive user inputindicating that a user wishes to pause and/or un-pause the consumptionof the first content item and may provide the user input to the contentsharing platform. In one embodiment, the client item module 435 mayprovide a message or data indicating that consumption (e.g., playback)of the first content item should be paused when the user accessesdifferent portions of the second content item. In one embodiment, theuser may provide user input selecting one of the content items in thecontent item list (e.g., select content item Slide Presentation 1 fromcontent item list 115 illustrated in FIG. 1). The client item module 435may provide data indicative of the selected content item to the contentsharing platform.

In one embodiment, the client GUI module 440 may also provide, present,and/or display a GUI (e.g., GUI 100 illustrated in FIG. 1). The GUI mayinclude two portions. The second portion may present the first contentitem provided by the first user and the first portion may present theone or more content items that are referred to by the first contentitem. The GUI may also include a list of one or more content items (asillustrated in FIG. 1).

FIGS. 5-6 are flow diagrams illustrating methods of presenting multiplecontent items. For simplicity of explanation, the methods are depictedand described as a series of acts. However, acts in accordance with thisdisclosure can occur in various orders and/or concurrently and withother acts not presented and described herein. Furthermore, not allillustrated acts may be required to implement the methods in accordancewith the disclosed subject matter. In addition, those skilled in the artwill understand and appreciate that the methods could alternatively berepresented as a series of interrelated states via a state diagram orevents.

FIG. 5 is a flow diagram illustrating a method 500 of presentingmultiple content items, in accordance with an embodiment of the presentdisclosure. The method 500 may be performed by processing logic thatcomprises hardware (e.g., circuitry, dedicated logic, programmablelogic, microcode, etc.), software (e.g., instructions run on a processorto perform hardware simulation), or a combination thereof. In oneembodiment, method 500 may be performed by a content module, a contentsharing platform, and/or a server, as illustrated in FIG. 3.

Referring to FIG. 5 the method 500 begins at block 505 where theprocessing logic receives a first content item from a first user (e.g.,a first user may record a live content item or may upload a content itemto a content sharing platform). At block 510, the processing logicreceives a set of one or more actions from the first user. As discussedabove, each of the one or more actions may be associated with one ormore additional content items that the first content item may refer to.The processing logic provides data (e.g., action data) indicative of theset of content items to a client device (e.g., to a media view on aclient device) at block 515. The processing logic also provides a GUI tothe client device (block 520). As discussed above, the GUI may include afirst GUI portion to present and/or display the first content item and asecond GUI portion to display content items from the set of contentitems. The processing logic may perform one or more actions from the setof actions at block 521. For example, the processing logic may pauseplayback of an additional content item from the set of content items. Inanother example, the processing logic may fast forward an additionalcontent item from the set of content items.

At block 525, user input is received from a second user of the clientdevice. The processing logic analyzes the user input and determineswhether the user input indicates a first portion of the first contentitem. If the user input indicates the first portion of the first contentitem, the processing logic proceeds to block 530, where the processinglogic determines a second content item that is associated with the firstportion of the first content item. At block 535, the processing logicpresents the first portion of the first content item in the first GUIportion (as discussed above) and at block 540 the processing logicpresents the second content item in the second GUI portion (as discussedabove). After block 540, the method 500 proceeds to block 570 where theprocessing logic determines whether additional user input is received.For example, additional user input indicating another portion of thecontent item or indicating another content item may be received from thesecond user of the client device. If additional user input is received,the method 500 proceeds back to block 525. If no additional user inputis received, the method 500 ends.

Referring back to block 525, if the processing logic determines that theuser input indicates a second content item from the set of contentitems, the processing logic proceeds to block 545 where the processinglogic identifies a portion of the first content item that is associatedwith the second content item. At block 546, the processing logicpresents the identified portion of the first content item in the firstGUI portion and at block 550 the processing logic presents the secondcontent item in the second GUI portion. After block 550, the method 500proceeds to block 570 where the processing logic determines whetheradditional user input is received. If additional user input is received,the method 500 proceeds back to block 525. If no additional user inputis received, the method 500 ends.

Referring back to block 525, if the processing logic determines that theuser input indicates that consumption of the first content item shouldbe paused, the processing logic proceeds to block 555 where theprocessing logic pauses consumption of the first content item (e.g., theprocessing logic stops providing the first content item to the clientdevice). At block 560, the processing logic receives user inputindicating that the user wishes to un-pause the first content item. Theprocessing logic resumes consumption of the first content item at block565 (e.g., resumes providing the content item starting at theportion/time where the content item was paused or a currentportion/time, as discussed above). After block 565, the method 500proceeds to block 570 where the processing logic determines whetheradditional user input is received. If additional user input is received,the method 500 returns to block 525. If no additional user input isreceived, the method 500 ends.

FIG. 6 is a flow diagram illustrating a method 600 of presentingmultiple content items, in accordance with another embodiment of thepresent disclosure. The method 600 may be performed by processing logicthat comprises hardware (e.g., circuitry, dedicated logic, programmablelogic, microcode, etc.), software (e.g., instructions run on a processorto perform hardware simulation), or a combination thereof. In oneembodiment, method 600 may be performed by a content module, contentsharing platform, and/or a server, as illustrated in FIG. 3.

Referring to FIG. 6 the method 600 begins at block 605 where theprocessing logic receives a first content item from a content sharingplatform. At block 615, the processing logic receives action data (e.g.,data indicative of a first user's actions with respect to additionalcontent items, identifiers for the additional content items, start timesand/or end times for the additional content items) from the contentsharing platform. As discussed above, each of the one or more actionsmay be associated with one or more additional content items that thefirst content item may refer to. The processing logic also provides aGUI (block 620) for viewing the first content item and the one or moreadditional content items (e.g., a set of content items). As discussedabove, the GUI may include a first GUI portion to present and/or displaythe first content item and a second GUI portion to display content itemsfrom the set of content items. The processing logic may perform one ormore actions from the set of actions at block 621. For example, theprocessing logic may increase the volume for the playback of anadditional content item from the set of content items. In anotherexample, the processing logic may rewind an additional content item fromthe set of content items.

At block 625, user input is received from a user. The processing logicanalyzes the user input and determines whether the user input indicatesa first portion of the first content item. If the user input indicatesthe first portion of the first content item, the processing logicproceeds to block 630, where the processing logic provide the user inputto the content sharing platform. At block 635, the processing logicreceives the first portion of the first content item from the contentsharing platform and presents the first portion of the first contentitem in the first GUI portion (as discussed above). At block 640 theprocessing logic receives the second content item from the contentsharing platform and presents the second content item in the second GUIportion (as discussed above). After block 640, the method 600 proceedsto block 675 where the processing logic determines whether additionaluser input is received. For example, additional user input indicatinganother portion of the content item or indicating another content itemmay be received. If additional user input is received, the method 600proceeds back to block 625. If no additional user input is received, themethod 600 ends.

Referring back to block 625, if the processing logic determines that theuser input indicates a second content item from the set of contentitems, the processing logic proceeds to block 645 where the processinglogic provides the user input to the content sharing platform. At block650, the processing logic receives the identified portion of the firstcontent item from the content sharing platform and presents theidentified portion of the first content item in the first GUI portion.At block 655 the processing logic receives the second content item fromthe content sharing platform and presents the second content item in thesecond GUI portion. After block 655, the method 600 proceeds to block675 where the processing logic determines whether additional user inputis received. For example, additional user input indicating anotherportion of the content item or indicating another content item may bereceived. If additional user input is received, the method 600 proceedsback to block 625. If no additional user input is received, the method600 ends.

Referring back to block 625, if the processing logic determines that theuser input indicates that consumption of the first content item shouldbe paused, the processing logic proceeds to block 660 where theprocessing logic provides the user input to the content sharingplatform. At block 665, the processing logic receives a second userinput indicating that the user wishes to un-pause the first contentitem. The processing logic provides the second user input to the contentsharing platform at block 670. After block 670, the method 600 proceedsto block 675 where the processing logic determines whether additionaluser input is received. If additional user input is received, the method600 returns to block 625. If no additional user input is received, themethod 600 ends.

FIG. 7 illustrates a diagrammatic representation of a machine in theexample form of a computing device 700 within which a set ofinstructions, for causing the machine to perform any one or more of themethodologies discussed herein, may be executed. The computing device700 may be a mobile phone, a smart phone, a netbook computer, arackmount server, a router computer, a server computer, a personalcomputer, a mainframe computer, a laptop computer, a tablet computer, adesktop computer etc., within which a set of instructions, for causingthe machine to perform any one or more of the methodologies discussedherein, may be executed. In alternative embodiments, the machine may beconnected (e.g., networked) to other machines in a LAN, an intranet, anextranet, or the Internet. The machine may operate in the capacity of aserver machine in client-server network environment. The machine may bea personal computer (PC), a set-top box (STB), a server, a networkrouter, switch or bridge, or any machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine. Further, while only a single machine is illustrated,the term “machine” shall also be taken to include any collection ofmachines that individually or jointly execute a set (or multiple sets)of instructions to perform any one or more of the methodologiesdiscussed herein.

The example computing device 700 includes a processing device (e.g., aprocessor) 702, a main memory 704 (e.g., read-only memory (ROM), flashmemory, dynamic random access memory (DRAM) such as synchronous DRAM(SDRAM)), a static memory 706 (e.g., flash memory, static random accessmemory (SRAM)) and a data storage device 718, which communicate witheach other via a bus 730.

Processing device 702 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device 702 may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or a processor implementing other instruction sets orprocessors implementing a combination of instruction sets. Theprocessing device 702 may also be one or more special-purpose processingdevices such as an application specific integrated circuit (ASIC), afield programmable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. The processing device 702 is configuredto execute content module 726 for performing the operations and stepsdiscussed herein.

The computing device 700 may further include a network interface device708 which may communicate with a network 720. The computing device 700also may include a video display unit 710 (e.g., a liquid crystaldisplay (LCD) or a cathode ray tube (CRT)), an alphanumeric input device712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse) anda signal generation device 716 (e.g., a speaker). In one embodiment, thevideo display unit 710, the alphanumeric input device 712, and thecursor control device 714 may be combined into a single component ordevice (e.g., an LCD touch screen).

The data storage device 718 may include a computer-readable storagemedium 728 on which is stored one or more sets of instructions (e.g.,content module 726) embodying any one or more of the methodologies orfunctions described herein. The content module 726 may also reside,completely or at least partially, within the main memory 704 and/orwithin the processing device 702 during execution thereof by thecomputing device 700, the main memory 704 and the processing device 702also constituting computer-readable media. The instructions may furtherbe transmitted or received over a network 720 via the network interfacedevice 708.

While the computer-readable storage medium 728 is shown in an exampleembodiment to be a single medium, the term “computer-readable storagemedium” should be taken to include a single medium or multiple media(e.g., a centralized or distributed database and/or associated cachesand servers) that store the one or more sets of instructions. The term“computer-readable storage medium” shall also be taken to include anymedium that is capable of storing, encoding or carrying a set ofinstructions for execution by the machine and that cause the machine toperform any one or more of the methodologies of the present disclosure.The term “computer-readable storage medium” shall accordingly be takento include, but not be limited to, solid-state memories, optical mediaand magnetic media.

In the above description, numerous details are set forth. It will beapparent, however, to one of ordinary skill in the art having thebenefit of this disclosure, that embodiments of the disclosure may bepracticed without these specific details. In some instances, well-knownstructures and devices are shown in block diagram form, rather than indetail, in order to avoid obscuring the description.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared and otherwise manipulated. It has provenconvenient at times, principally for reasons of common usage, to referto these signals as bits, values, elements, symbols, characters, terms,numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as “receiving,” “determining,” “providing,” “presenting,”“generating,” “pausing,” “resuming,” or the like, refer to the actionsand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(e.g., electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

Embodiments of the disclosure also relate to an apparatus for performingthe operations herein. This apparatus may be specially constructed forthe required purposes, or it may comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a non-transitorycomputer readable storage medium, such as, but not limited to, any typeof disk including floppy disks, optical disks, CD-ROMs andmagnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flashmemory, or any type of media suitable for storing electronicinstructions.

The words “example” or “exemplary” are used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “example” or “exemplary” is not necessarily to be construed aspreferred or advantageous over other aspects or designs. Rather, use ofthe words “example” or “exemplary” is intended to present concepts in aconcrete fashion. As used in this application, the term “or” is intendedto mean an inclusive “or” rather than an exclusive “or”. That is, unlessspecified otherwise, or clear from context, “X includes A or B” isintended to mean any of the natural inclusive permutations. That is, ifX includes A; X includes B; or X includes both A and B, then “X includesA or B” is satisfied under any of the foregoing instances. In addition,the articles “a” and “an” as used in this application and the appendedclaims should generally be construed to mean “one or more” unlessspecified otherwise or clear from context to be directed to a singularform. Moreover, use of the term “an embodiment” or “one embodiment” or“an implementation” or “one implementation” throughout is not intendedto mean the same embodiment or implementation unless described as such.Furthermore, the terms “first,” “second,” “third,” “fourth,” etc. asused herein are meant as labels to distinguish among different elementsand may not necessarily have an ordinal meaning according to theirnumerical designation.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present disclosure is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the disclosure as described herein.

The above description sets forth numerous specific details such asexamples of specific systems, components, methods and so forth, in orderto provide a good understanding of several embodiments of the presentdisclosure. It will be apparent to one skilled in the art, however, thatat least some embodiments of the present disclosure may be practicedwithout these specific details. In other instances, well-knowncomponents or methods are not described in detail or are presented insimple block diagram format in order to avoid unnecessarily obscuringthe present disclosure. Thus, the specific details set forth above aremerely examples. Particular implementations may vary from these exampledetails and still be contemplated to be within the scope of the presentdisclosure.

It is to be understood that the above description is intended to beillustrative and not restrictive. Many other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method, comprising: receiving a first contentitem from a first user device of a first user of a content sharingplatform; identifying, by a processing device, a set of actionsperformed by the first user on the first user device, wherein eachaction from the set of actions is associated with a correspondingadditional content item from a set of additional content items andwherein each additional content item from the set of additional contentitems is associated with a corresponding portion of the first contentitem; and in response to a subsequent request of a second user of thecontent sharing platform for the first content item hosted by thecontent sharing platform: providing first data indicative of the set ofadditional content items to a second user device of the second user;providing a graphical user interface (GUI) to the second user device,the GUI comprising a first GUI portion having a media player to play thefirst content item and a second GUI portion to present the set ofadditional content items; and causing one or more actions from the setof actions to be performed in the GUI on the second user device during aplayback of the first content item in the media player for the seconduser.
 2. The method of claim 1, further comprising: receiving user inputindicating a first portion of the first content item; determining asecond content item from the set of additional content items, whereinthe second content item is associated with the first portion of thefirst content item; causing the first portion of the first content itemto be played in the first GUI portion; and causing the second contentitem to be presented in the second GUI portion.
 3. The method of claim1, wherein the first data further comprises second data indicative ofstarting points for the set of additional content items.
 4. The methodof claim 1, wherein the first data further comprises second dataindicative of ending points for the set of additional content items. 5.The method of claim 1, wherein the first data further comprisesidentifiers for each content item in the set of additional contentitems.
 6. The method of claim 1, further comprising: generating thefirst data based on the set of actions.
 7. The method of claim 1,further comprising: receiving a first user input indicating a firstrequest to pause the first content item at a first portion of the firstcontent item; pausing consumption of the first content item; receiving asecond user input indicating a second request to continue playback ofthe first content item; and resuming consumption of the first contentitem at the first portion of the first content item or at a latestportion of the first content item.
 8. The method of claim 1, furthercomprising: receiving user input indicating a second content item fromthe set of content items, wherein the second content item is associatedwith the first portion of the first content item; playing the firstportion of the first content item in the first GUI portion; andpresenting the second content item in the second GUI portion.
 9. Anapparatus, comprising: a memory; a processing device coupled to thememory, the processing device to: receive a first content item from afirst user device of a first user of a content sharing platform;identify a set of actions from performed by the first user on the firstuser device, wherein each action from the set of actions is associatedwith a corresponding additional content item from a set of additionalcontent items and wherein each additional content item from the set ofadditional content items is associated with a corresponding portion ofthe first content item; and in response to a subsequent request of asecond user of the content sharing platform for the first content itemhosted by the content sharing platform: provide first data indicative ofthe set of additional content items to a second user device of thesecond user; provide a graphical user interface (GUI) to the clientdevice, the GUI comprising a first GUI portion having a media player toplay the first content item and a second GUI portion to present the setof additional content items; and cause one or more actions from the setof actions to be performed in the GUI on the second user device during aplayback of the first content item in the media player for the seconduser.
 10. The apparatus of claim 9, wherein the processing device isfurther to: receive user input indicating a first portion of the firstcontent item; determine a second content item from the set of additionalcontent items, wherein the second content item is associated with thefirst portion of the first content item; cause the first portion of thefirst content item to be played in the first GUI portion; and cause thesecond content item to be presented in the second GUI portion.
 11. Theapparatus of claim 9, wherein the first data further comprises seconddata indicative of starting points for the set of additional contentitems.
 12. The apparatus of claim 9, wherein the first data furthercomprises second data indicative of ending points for the set ofadditional content items.
 13. The apparatus of claim 9, wherein thefirst data further comprises identifiers for each content item in theset of additional content items.
 14. The apparatus of claim 9, whereinthe processing device is further to: generate the first data based onthe set of actions.
 15. The apparatus of claim 9, wherein the processingdevice is further to: receive a first user input indicating a firstrequest to pause the first content item at a first portion of the firstcontent item; pause consumption of the first content item; receive asecond user input indicating a second request to continue playback ofthe first content item; and resume consumption of the first content itemat the first portion of the first content item or at a latest portion ofthe first content item.
 16. The apparatus of claim 9, wherein theprocessing device is further to: receive user input indicating a secondcontent item from the set of content items, wherein the second contentitem is associated with the first portion of the first content item;play the first portion of the first content item in the first GUIportion; and present the second content item in the second GUI portion.17. A non-transitory computer readable storage medium havinginstructions that, when executed by a processing device, cause theprocessing device to perform operations comprising: receiving, by afirst user device of a first user of a content sharing platform, a firstcontent item hosted by a content sharing platform; receiving, by thefirst user device of the first user, action data indicative of a set ofactions previously performed by a second user of the content sharingplatform during a prior presentation of the first content item for thesecond user, wherein each action from the set of actions is associatedwith a corresponding additional content item from a set of additionalcontent items and wherein each additional content item from the set ofadditional content items is associated with a corresponding portion ofthe first content item; providing, by the first user device of the firstuser, a graphical user interface (GUI) comprising a first GUI portionhaving a media player to play the first content item and a second GUIportion to present the set of additional content items; and causing, bythe first user device of the first user, one or more actions from theset of actions to be performed in the GUI during a playback of the firstcontent item in the media player for the second user.
 18. Thenon-transitory computer readable storage medium of claim 17, theoperations further comprising: receiving a first user input indicating afirst request to pause the first content item at a first portion of thefirst content item; providing the first user input to a content sharingplatform; receiving a second user input indicating a second request tocontinue playback of the first content item; and providing the seconduser input to the content sharing platform.
 19. The non-transitorycomputer readable storage medium of claim 17, the operations furthercomprising: receiving user input indicating a first portion of the firstcontent item; providing the user input to the content sharing platform;receiving the first portion of the first content item from the contentsharing platform; and receiving a second content item from the contentsharing platform, wherein the second content item is associated with thefirst portion of the first content item.
 20. The non-transitory computerreadable storage medium of claim 17, the operations further comprising:receiving user input indicating a second content item from the set ofadditional content items, wherein the second content item is associatedwith the first portion of the first content item; providing the userinput to the content sharing platform; receiving the first portion ofthe first content item from the content sharing platform; and receivingthe second content item from the content sharing platform.
 21. Anon-transitory computer readable storage medium having instructionsthat, when executed by a processing device, cause the processing deviceto perform operations comprising: receiving a first content item from afirst user device of a first user of a content sharing platform;identifying a set of actions performed by the first user on the firstuser device, wherein each action from the set of actions is associatedwith a corresponding additional content item from a set of additionalcontent items and wherein each additional content item from the set ofadditional content items is associated with a corresponding portion ofthe first content item; and in response to a subsequent request of asecond user of the content sharing platform for the first content itemhosted by the content sharing platform: providing first data indicativeof the set of additional content items to a second user device of thesecond user; providing a graphical user interface (GUI) to the seconduser device, the GUI comprising a first GUI portion having a mediaplayer to play the first content item and a second GUI portion topresent the set of additional content items; and causing one or moreactions from the set of actions to be performed in the GUI on the seconduser device during a playback of the first content item in the mediaplayer for the second user.
 22. A method comprising: receiving, by afirst user device of a first user of a content sharing platform, a firstcontent item hosted by a content sharing platform; receiving, by thefirst user device of the first user, action data indicative of a set ofactions previously performed by a second user of the content sharingplatform during a prior presentation of the first content item for thesecond user, wherein each action from the set of actions is associatedwith a corresponding additional content item from a set of additionalcontent items and wherein each additional content item from the set ofadditional content items is associated with a corresponding portion ofthe first content item; providing, by a processing device of the firstuser device of the first user, a graphical user interface (GUI)comprising a first GUI portion having a media player to play the firstcontent item and a second GUI portion to present the set of additionalcontent items; and causing, by the first user device of the first user,one or more actions from the set of actions to be performed in the GUIduring a playback of the first content item in the media player for thesecond user.
 23. An apparatus comprising: a memory; a processing devicecoupled to the memory, the processing device to: receive, by a firstuser device of a first user of a content sharing platform, a firstcontent item hosted by a content sharing platform; receive, by the firstuser device of the first user, action data indicative of a set ofactions previously performed by a second user of the content sharingplatform during a prior presentation of the first content item for thesecond user, wherein each action from the set of actions is associatedwith a corresponding additional content item from a set of additionalcontent items and wherein each additional content item from the set ofadditional content items is associated with a corresponding portion ofthe first content item; provide, by the first user device of the firstuser, a graphical user interface (GUI) comprising a first GUI portionhaving a media player to play the first content item and a second GUIportion to present the set of additional content items; and cause, bythe first user device of the first user, one or more actions from theset of actions to be performed in the GUI during a playback of the firstcontent item in the media player for the second user.